package main

import (
	"fmt"
	"os"
	"path"
	"path/filepath"
)

func main() {
	// 获取文件绝对路径
	patch, _ := filepath.Abs("main.go")

	// 获取文件名称
	fmt.Println(filepath.Base(patch))

	// 获取文件父目录
	fmt.Println(filepath.Dir(patch))

	// 分割目录与文件名
	fmt.Println(filepath.Split(patch))

	// 多路径分割
	fmt.Println(filepath.SplitList("a;b;c"))

	// 获取文件后缀
	fmt.Println(filepath.Ext(patch))

	// 判断路径前缀
	fmt.Println(filepath.HasPrefix(patch, "d:\\a"))

	// 判断是否为绝对路径
	fmt.Println(filepath.IsAbs(patch), filepath.IsAbs("main.go"))

	// 匹配目录下面的文件
	fmt.Println(filepath.Glob("dir/*.txt"))

	// 遍历目录下面的文件
	filepath.Walk("dir", func(path string, info os.FileInfo, err error) error {
		fmt.Println(path, info.Name())
		return nil
	})

}
